Exemple de déclencheur 2 : Processus de collage
Le Robotics_Trigger_Advanced.project
l'exemple de projet décrit ici se trouve dans le répertoire d'installation de CODESYS sous..\CODESYS SoftMotion\Examples
.
Les déclencheurs peuvent être utilisés pour effectuer des actions à des positions spécifiques sur le chemin, telles que l'activation et la désactivation d'une buse de collage.
Cet exemple inclut les composants suivants :
La configuration d'une prévision garantie de la trajectoire par le
fPlanningForecastDuration
paramètre de laSMC_TuneCPKernel
bloc fonctionnel.La commande de différents déclencheurs. Ici, les trois méthodes disponibles pour définir la position de la trajectoire sont utilisées (voir SMC_TriggerPositionType).
L'utilisation de déclencheurs avec décalage temporel. L'exemple d'application contient les
TriggerWithTimeShift
bloc fonctionnel qui peut réagir à l'atteinte de la position de trajectoire avec un décalage temporel (plus tôt et plus tard).
Ces composants sont illustrés dans un exemple d'application pour un processus de collage. Le mouvement affiché en rouge dans l'image suivante est exécuté (avec fondu).

Des déclencheurs ont été définis aux positions marquées en vert :
Position 1 : Allumer l'encolleuse 0,05 s avant d'atteindre la position.
Position 1 : Allumer la lampe UV lorsque la position est atteinte.
Position 2 : Remplissez le réservoir de colle lorsque la position est atteinte.
Position 3 : Éteindre l'encolleuse et arrêter de remplir le réservoir de colle 0,05 s avant d'atteindre la position.
Position 3 : éteindre la lampe UV 1,5 s après avoir atteint la position
Structure de la demande
L'application se compose des parties suivantes.
GlueApplication
: Ce programme contient l'exemple d'application qui montre comment utiliser des déclencheurs pour un processus de collage.Planning_PRG
: Dans ce programme, une prévision de la trajectoire est configurée.TriggerWithTimeShift
: Ce bloc fonction contient la logique des triggers avec décalage temporel et est utilisé dans leGlueApplication
exemple de programme.Trace
: La trace montre la dynamique des axes ainsi que les sorties duGlueApplication
programme qui sont commutés par les déclencheurs.
Configuration d'une prévision
Si vous voulez réagir tôt avant qu'un déclencheur ne soit atteint, par exemple 0,05 s avant, alors le fPlanningForecastDuration
paramètre du SMC_SMC_TuneCPKernel
bloc fonctionnel doit être réglé sur au moins 0,05 s. Comme le paramètre a un impact direct sur la latence, sa valeur ne doit pas être plus grande que nécessaire (voir la documentation de fPlanificationPrévisionDurée). Noter que SMC_TuneCPKernel
doit être appelé dans le SoftMotion tâche de planification. Pour cette raison, la configuration n'est pas exécutée dans le programme principal GlueApplication
, mais dans le Planning_PRG
programme.
Dans cet exemple d'application, l'évaluation du déclencheur est requise au plus tôt 0,05 s avant qu'une position ne soit atteinte. Pour cette raison, le paramètrefPlanningForecastDuration
=0,05 est défini dans le Planning_PRG
programme.
Bloc fonction : TriggerWithTimeShift
Le TriggerWithTimeShift
Le bloc fonctionnel fournit une interface simplifiée pour l'utilisation des déclencheurs. De plus, un décalage temporel peut être défini afin que le déclencheur puisse réagir avant qu'une position (valeur positive) ainsi qu'après qu'une position (valeur négative) ne soit atteinte. En fonction de la précision temporelle requise dans une application, la réaction à l'atteinte d'un déclencheur peut être la suivante :
Précision de temps requise >= cycle de tâche de bus : Dans ce cas, la
TriggerWithTimeShift.TriggerReachedThisCycle
sortie peut être utilisée.Précision de temps requise < cycle de tâche de bus : dans ce cas, le temps restant exact
TriggerWithTimeShift.TriggerTime
jusqu'à ce que le déclencheur soit atteint peut être utilisé.
Intérieurement, TriggerWithTimeShift
utilise le SMC_GroupPrepareTrigger
et SMC_GroupReadTrigger
blocs fonctionnels.
Commander des déclencheurs
Dans le GlueApplication
programme, les mouvements et les déclenchements sont commandés. L'ordre d'appel est particulièrement important pour les déclencheurs car les déclencheurs préparés à l'aide SMC_GroupPrepareTrigger
sont affectés au prochain mouvement commandé dans le même cycle. Par conséquent, dans chaque application, vous devez faire attention aux points suivants :
Les blocs fonctionnels de commande des déclencheurs sont toujours appelés avant les blocs fonctionnels de mouvement.
Les déclencheurs et le mouvement respectif sont toujours commandés dans le même cycle.
Les déclencheurs utilisent tous les types de SMC_TriggerPositionType
:
Les déclencheurs à la position 1 utilisent la définition d'une distance relative (
SMC_TriggerPositionType.MvtRelative
) et comme Position 0.5. Étant donné que le mouvement respectif a une distance de 10, les déclencheurs sont situés à X=5.Le déclencheur à la position 2 utilise la définition d'une distance en unités utilisateur u (
SMC_TriggerPositionType.MvtDistance
) et en position 5. Par conséquent, le déclencheur est également situé à X=5.Les déclencheurs en Position 3 utilisent l'intersection avec un plan (
SMC_TriggerPositionType.PlaneIntersection
). Le plan a été défini pour que les déclencheurs soient situés en X=5.
GlueApplication
a la EnableGlue
, EnableUVLamp
, et RefillGlueStorage
les sorties. Ceux-ci sont commutés aux déclencheurs appropriés dans GlueApplication.EvaluateTriggers()
. Le mouvement et l'état de ces sorties peuvent être surveillés et évalués dans la trace.